// Have include guard.
#ifndef FPK_PS3JOYSTICK_HPP
#define FPK_PS3JOYSTICK_HPP

// Include files.
#include "WPILib.h"

/**
 *  The Ps3Joystick class allows you to receive input data from an PlayStation 3 controller.
 */
class Ps3Joystick:
	public Joystick
{
	public:
		/**
		 *  The Ps3Axis enum specifies which axis (can be from a analog stick or the tilt sensor) to read from.
		 */
		enum Ps3Axis
		{
			kLeftX = 1,
			kLeftY = 2,
			kRightX = 3,
			kFrontBackTilt = 4,	
			kLeftRightTilt = 5,
			kRightY = 6
		};
		
		/**
		 *  The Ps3Button enum specifies which button to read from.
		 */
		enum Ps3Button
		{
			kTriangle = 1,
			kCircle = 2,
			kCross = 3,
			kSquare = 4,
			kL3 = 5,
			kR3 = 6,
			kL1 = 7,
			kR1 = 8,
			kDUp = 9,
			kDDown = 10,
			kDLeft = 11,
			kDRight = 12,
			kPS = 13,
			kL2 = 14,
			kR2 = 15
		};
		
		Ps3Joystick(int joystickPort);
		~Ps3Joystick();
		double GetAxisValue(Ps3Axis axis);
		double GetAxisValue(int axis);
		bool GetButton(Ps3Button button);
};

#endif // #ifndef FPK_PS3JOYSTICK_HPP
